#include "gpio.h"

void MX_GPIO_Init(void)
{
    rcu_periph_clock_enable(RCU_GPIOA);
    rcu_periph_clock_enable(RCU_GPIOB);
    rcu_periph_clock_enable(RCU_GPIOC);
    rcu_periph_clock_enable(RCU_GPIOD);


    gpio_init(SWITCH1_GPIO_Port, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, SWITCH1_Pin);
    gpio_init(SWITCH2_GPIO_Port, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, SWITCH2_Pin);
    gpio_init(SWITCH3_GPIO_Port, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, SWITCH3_Pin);
    gpio_init(SWITCH4_GPIO_Port, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, SWITCH4_Pin);
    
    gpio_init(SWITCH2_1_GPIO_Port, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, SWITCH2_1_Pin);
    gpio_init(SWITCH2_2_GPIO_Port, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, SWITCH2_2_Pin);
    gpio_init(SWITCH2_3_GPIO_Port, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, SWITCH2_3_Pin);
    gpio_init(SWITCH2_4_GPIO_Port, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, SWITCH2_4_Pin);
    
    gpio_init(S1_EN_GPIO_Port, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, S1_EN_Pin);
    gpio_init(V1_EN_GPIO_Port, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, V1_EN_Pin);
    gpio_init(T1_EN_GPIO_Port, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, T1_EN_Pin);
    gpio_init(LED_GPIO_Port, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, LED_Pin);
    
    gpio_bit_write(S1_EN_GPIO_Port, S1_EN_Pin, SET);
    gpio_bit_write(V1_EN_GPIO_Port, V1_EN_Pin, SET);
    gpio_bit_write(T1_EN_GPIO_Port, T1_EN_Pin, SET);
}

